KILLED



    


Runtime Complexity (full) proof of /tmp/tmpb5GDvZ/OvConsOS_complete_noand_C.xml


(0) Obligation:

Runtime Complexity TRS:
The TRS R consists of the following rules:

active(zeros) → mark(cons(0, zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0)) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0)) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0)
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0, IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0) → ok(0)
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Rewrite Strategy: FULL

(1) DecreasingLoopProof (EQUIVALENT transformation)

The following loop(s) give(s) rise to the lower bound Ω(n1):
The rewrite sequence
cons(mark(X1), X2) →+ mark(cons(X1, X2))
gives rise to a decreasing loop by considering the right hand sides subterm at position [0].
The pumping substitution is [X1 / mark(X1)].
The result substitution is [ ].

(2) BOUNDS(n^1, INF)

(3) RenamingProof (EQUIVALENT transformation)

Renamed function symbols to avoid clashes with predefined symbol.

(4) Obligation:

Runtime Complexity Relative TRS:
The TRS R consists of the following rules:

active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

S is empty.
Rewrite Strategy: FULL

(5) TypeInferenceProof (BOTH BOUNDS(ID, ID) transformation)

Infered types.

(6) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

(7) OrderProof (LOWER BOUND(ID) transformation)

Heuristically decided to analyse the following defined symbols:
active, cons, U102, isNatKind, U103, isNatIListKind, U104, U105, isNat, U106, isNatIList, U12, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
cons < active
U102 < active
isNatKind < active
U103 < active
isNatIListKind < active
U104 < active
U105 < active
isNat < active
U106 < active
isNatIList < active
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
cons < proper
U102 < proper
isNatKind < proper
U103 < proper
isNatIListKind < proper
U104 < proper
U105 < proper
isNat < proper
U106 < proper
isNatIList < proper
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(8) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
cons, active, U102, isNatKind, U103, isNatIListKind, U104, U105, isNat, U106, isNatIList, U12, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
cons < active
U102 < active
isNatKind < active
U103 < active
isNatIListKind < active
U104 < active
U105 < active
isNat < active
U106 < active
isNatIList < active
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
cons < proper
U102 < proper
isNatKind < proper
U103 < proper
isNatIListKind < proper
U104 < proper
U105 < proper
isNat < proper
U106 < proper
isNatIList < proper
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(9) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)

Induction Base:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n5_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(10) Complex Obligation (BEST)

(11) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U102, active, isNatKind, U103, isNatIListKind, U104, U105, isNat, U106, isNatIList, U12, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U102 < active
isNatKind < active
U103 < active
isNatIListKind < active
U104 < active
U105 < active
isNat < active
U106 < active
isNatIList < active
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U102 < proper
isNatKind < proper
U103 < proper
isNatIListKind < proper
U104 < proper
U105 < proper
isNat < proper
U106 < proper
isNatIList < proper
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(12) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)

Induction Base:
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n3902_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(13) Complex Obligation (BEST)

(14) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
isNatKind, active, U103, isNatIListKind, U104, U105, isNat, U106, isNatIList, U12, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
isNatKind < active
U103 < active
isNatIListKind < active
U104 < active
U105 < active
isNat < active
U106 < active
isNatIList < active
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
isNatKind < proper
U103 < proper
isNatIListKind < proper
U104 < proper
U105 < proper
isNat < proper
U106 < proper
isNatIList < proper
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(15) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)

Could not prove a rewrite lemma for the defined symbol isNatKind.

(16) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U103, active, isNatIListKind, U104, U105, isNat, U106, isNatIList, U12, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U103 < active
isNatIListKind < active
U104 < active
U105 < active
isNat < active
U106 < active
isNatIList < active
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U103 < proper
isNatIListKind < proper
U104 < proper
U105 < proper
isNat < proper
U106 < proper
isNatIList < proper
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(17) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)

Induction Base:
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n11167_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(18) Complex Obligation (BEST)

(19) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
isNatIListKind, active, U104, U105, isNat, U106, isNatIList, U12, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
isNatIListKind < active
U104 < active
U105 < active
isNat < active
U106 < active
isNatIList < active
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
isNatIListKind < proper
U104 < proper
U105 < proper
isNat < proper
U106 < proper
isNatIList < proper
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(20) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)

Could not prove a rewrite lemma for the defined symbol isNatIListKind.

(21) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U104, active, U105, isNat, U106, isNatIList, U12, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U104 < active
U105 < active
isNat < active
U106 < active
isNatIList < active
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U104 < proper
U105 < proper
isNat < proper
U106 < proper
isNatIList < proper
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(22) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)

Induction Base:
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n19044_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(23) Complex Obligation (BEST)

(24) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U105, active, isNat, U106, isNatIList, U12, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U105 < active
isNat < active
U106 < active
isNatIList < active
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U105 < proper
isNat < proper
U106 < proper
isNatIList < proper
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(25) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)

Induction Base:
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n27503_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(26) Complex Obligation (BEST)

(27) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
isNat, active, U106, isNatIList, U12, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
isNat < active
U106 < active
isNatIList < active
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
isNat < proper
U106 < proper
isNatIList < proper
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(28) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)

Could not prove a rewrite lemma for the defined symbol isNat.

(29) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U106, active, isNatIList, U12, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U106 < active
isNatIList < active
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U106 < proper
isNatIList < proper
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(30) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)

Induction Base:
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n32945_0, 1)))) →RΩ(1)
mark(U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(31) Complex Obligation (BEST)

(32) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
isNatIList, active, U12, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
isNatIList < active
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
isNatIList < proper
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(33) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)

Could not prove a rewrite lemma for the defined symbol isNatIList.

(34) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U12, active, U112, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U12 < active
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U12 < proper
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(35) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)

Induction Base:
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n34987_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(36) Complex Obligation (BEST)

(37) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U112, active, U113, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U112 < active
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U112 < proper
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(38) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)

Induction Base:
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n40904_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(39) Complex Obligation (BEST)

(40) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U113, active, U114, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U113 < active
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U113 < proper
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(41) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)

Induction Base:
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n51195_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(42) Complex Obligation (BEST)

(43) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U114, active, s, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U114 < active
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U114 < proper
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(44) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)

Induction Base:
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n62091_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(45) Complex Obligation (BEST)

(46) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
s, active, length, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
s < active
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
s < proper
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(47) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)

Induction Base:
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n69116_0, 1)))) →RΩ(1)
mark(s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(48) Complex Obligation (BEST)

(49) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
length, active, U13, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
length < active
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
length < proper
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(50) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)

Induction Base:
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n71919_0, 1)))) →RΩ(1)
mark(length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(51) Complex Obligation (BEST)

(52) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U13, active, isNatList, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U13 < active
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U13 < proper
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(53) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)

Induction Base:
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n74823_0, 1)))) →RΩ(1)
mark(U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(54) Complex Obligation (BEST)

(55) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
isNatList, active, U122, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
isNatList < active
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
isNatList < proper
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(56) NoRewriteLemmaProof (LOWER BOUND(ID) transformation)

Could not prove a rewrite lemma for the defined symbol isNatList.

(57) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U122, active, U132, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U122 < active
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U122 < proper
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(58) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)

Induction Base:
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n77899_0, 1)))) →RΩ(1)
mark(U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(59) Complex Obligation (BEST)

(60) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U132, active, U133, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U132 < active
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U132 < proper
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(61) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)

Induction Base:
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))

Induction Step:
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n81005_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) →RΩ(1)
mark(U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(62) Complex Obligation (BEST)

(63) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U133, active, U134, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U133 < active
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U133 < proper
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(64) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)

Induction Base:
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))

Induction Step:
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n99466_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) →RΩ(1)
mark(U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(65) Complex Obligation (BEST)

(66) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U134, active, U135, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U134 < active
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U134 < proper
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(67) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)

Induction Base:
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))

Induction Step:
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n118931_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) →RΩ(1)
mark(U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(68) Complex Obligation (BEST)

(69) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U135, active, U136, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U135 < active
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U135 < proper
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(70) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)

Induction Base:
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))

Induction Step:
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n139400_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) →RΩ(1)
mark(U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(71) Complex Obligation (BEST)

(72) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U136, active, take, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U136 < active
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U136 < proper
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(73) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)

Induction Base:
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))

Induction Step:
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n160873_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) →RΩ(1)
mark(U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(74) Complex Obligation (BEST)

(75) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
take, active, U22, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
take < active
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
take < proper
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(76) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)

Induction Base:
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n183350_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(77) Complex Obligation (BEST)

(78) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U22, active, U23, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U22 < active
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U22 < proper
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(79) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)

Induction Base:
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n194202_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(80) Complex Obligation (BEST)

(81) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U23, active, U32, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U23 < active
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U23 < proper
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(82) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)

Induction Base:
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n205159_0, 1)))) →RΩ(1)
mark(U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(83) Complex Obligation (BEST)

(84) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U32, active, U33, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U32 < active
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U32 < proper
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(85) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)

Induction Base:
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n209906_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(86) Complex Obligation (BEST)

(87) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U33, active, U42, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U33 < active
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U33 < proper
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(88) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)

Induction Base:
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n221373_0, 1)))) →RΩ(1)
mark(U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(89) Complex Obligation (BEST)

(90) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U42, active, U43, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U42 < active
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U42 < proper
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(91) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)

Induction Base:
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n226371_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(92) Complex Obligation (BEST)

(93) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U43, active, U44, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U43 < active
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U43 < proper
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(94) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)

Induction Base:
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n245330_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(95) Complex Obligation (BEST)

(96) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U44, active, U45, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U44 < active
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U44 < proper
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(97) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)

Induction Base:
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n264894_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(98) Complex Obligation (BEST)

(99) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U45, active, U46, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U45 < active
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U45 < proper
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(100) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)

Induction Base:
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n285063_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(101) Complex Obligation (BEST)

(102) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U46, active, U52, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U46 < active
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U46 < proper
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(103) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)

Induction Base:
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n298246_0, 1)))) →RΩ(1)
mark(U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(104) Complex Obligation (BEST)

(105) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U52, active, U62, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U52 < active
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U52 < proper
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(106) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)

Induction Base:
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n304092_0, 1)))) →RΩ(1)
mark(U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(107) Complex Obligation (BEST)

(108) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U62, active, U92, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U62 < active
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U62 < proper
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(109) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)

Induction Base:
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n310039_0, 1)))) →RΩ(1)
mark(U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(110) Complex Obligation (BEST)

(111) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U92, active, U93, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U92 < active
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U92 < proper
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(112) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)

Induction Base:
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n316087_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(113) Complex Obligation (BEST)

(114) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U93, active, U94, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U93 < active
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U93 < proper
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(115) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)

Induction Base:
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n338252_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(116) Complex Obligation (BEST)

(117) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U94, active, U95, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U94 < active
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U94 < proper
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(118) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)

Induction Base:
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n361022_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(119) Complex Obligation (BEST)

(120) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U95, active, U96, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U95 < active
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U95 < proper
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(121) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)

Induction Base:
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n384397_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(122) Complex Obligation (BEST)

(123) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U96, active, U11, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U96 < active
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U96 < proper
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(124) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)

Induction Base:
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n399708_0, 1)))) →RΩ(1)
mark(U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(125) Complex Obligation (BEST)

(126) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U11, active, U21, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U11 < active
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U11 < proper
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(127) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)

Induction Base:
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n406604_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(128) Complex Obligation (BEST)

(129) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U21, active, U31, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U21 < active
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U21 < proper
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(130) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)

Induction Base:
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n422425_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(131) Complex Obligation (BEST)

(132) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U31, active, U41, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U31 < active
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U31 < proper
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(133) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)

Induction Base:
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n438550_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(134) Complex Obligation (BEST)

(135) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U41, active, U51, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U41 < active
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U41 < proper
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(136) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)

Induction Base:
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n454979_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(137) Complex Obligation (BEST)

(138) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U51, active, U61, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U51 < active
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U51 < proper
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(139) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)

Induction Base:
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n481102_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(140) Complex Obligation (BEST)

(141) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U61, active, U71, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U61 < active
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U61 < proper
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(142) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)

Induction Base:
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n498237_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(143) Complex Obligation (BEST)

(144) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U71, active, U81, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U71 < active
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U71 < proper
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(145) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)

Induction Base:
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n515676_0, 1)))) →RΩ(1)
mark(U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(146) Complex Obligation (BEST)

(147) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U81, active, U91, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U81 < active
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U81 < proper
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(148) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)

Induction Base:
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)))

Induction Step:
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n523622_0, 1)))) →RΩ(1)
mark(U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0)))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(149) Complex Obligation (BEST)

(150) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U91, active, U101, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U91 < active
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U91 < proper
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(151) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5316690)

Induction Base:
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n531669_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(152) Complex Obligation (BEST)

(153) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5316690)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U101, active, U111, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U101 < active
U111 < active
U121 < active
U131 < active
active < top
U101 < proper
U111 < proper
U121 < proper
U131 < proper
proper < top

(154) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n559935_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5599350)

Induction Base:
U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n559935_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n559935_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(155) Complex Obligation (BEST)

(156) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5316690)
U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n559935_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5599350)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U111, active, U121, U131, proper, top

They will be analysed ascendingly in the following order:
U111 < active
U121 < active
U131 < active
active < top
U111 < proper
U121 < proper
U131 < proper
proper < top

(157) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U111(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n588806_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5888060)

Induction Base:
U111(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))

Induction Step:
U111(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n588806_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) →RΩ(1)
mark(U111(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n588806_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(158) Complex Obligation (BEST)

(159) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5316690)
U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n559935_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5599350)
U111(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n588806_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5888060)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U121, active, U131, proper, top

They will be analysed ascendingly in the following order:
U121 < active
U131 < active
active < top
U121 < proper
U131 < proper
proper < top

(160) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U121(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n618282_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n6182820)

Induction Base:
U121(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b))

Induction Step:
U121(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n618282_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b)) →RΩ(1)
mark(U121(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n618282_0)), gen_zeros:0':mark:tt:nil:ok3_0(b))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(161) Complex Obligation (BEST)

(162) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5316690)
U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n559935_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5599350)
U111(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n588806_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5888060)
U121(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n618282_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n6182820)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
U131, active, proper, top

They will be analysed ascendingly in the following order:
U131 < active
active < top
U131 < proper
proper < top

(163) RewriteLemmaProof (LOWER BOUND(ID) transformation)

Proved the following rewrite lemma:
U131(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n637643_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n6376430)

Induction Base:
U131(gen_zeros:0':mark:tt:nil:ok3_0(+(1, 0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))

Induction Step:
U131(gen_zeros:0':mark:tt:nil:ok3_0(+(1, +(n637643_0, 1))), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) →RΩ(1)
mark(U131(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n637643_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d))) →IH
mark(*4_0)

We have rt ∈ Ω(n1) and sz ∈ O(n). Thus, we have ircR ∈ Ω(n).

(164) Complex Obligation (BEST)

(165) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5316690)
U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n559935_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5599350)
U111(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n588806_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5888060)
U121(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n618282_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n6182820)
U131(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n637643_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n6376430)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

The following defined symbols remain to be analysed:
active, proper, top

They will be analysed ascendingly in the following order:
active < top
proper < top

(166) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5316690)
U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n559935_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5599350)
U111(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n588806_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5888060)
U121(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n618282_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n6182820)
U131(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n637643_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n6376430)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(167) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5316690)
U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n559935_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5599350)
U111(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n588806_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5888060)
U121(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n618282_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n6182820)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(168) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5316690)
U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n559935_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5599350)
U111(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n588806_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5888060)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(169) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5316690)
U101(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n559935_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5599350)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(170) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)
U91(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n531669_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n5316690)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(171) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)
U81(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n523622_0))) → *4_0, rt ∈ Ω(n5236220)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(172) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)
U71(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n515676_0))) → *4_0, rt ∈ Ω(n5156760)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(173) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)
U61(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n498237_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4982370)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(174) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)
U51(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n481102_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4811020)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(175) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)
U41(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n454979_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n4549790)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(176) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)
U31(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n438550_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4385500)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(177) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)
U21(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n422425_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4224250)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(178) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)
U11(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n406604_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n4066040)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(179) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)
U96(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n399708_0))) → *4_0, rt ∈ Ω(n3997080)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(180) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)
U95(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n384397_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n3843970)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(181) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)
U94(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n361022_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3610220)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(182) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)
U93(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n338252_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3382520)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(183) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)
U92(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n316087_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n3160870)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(184) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)
U62(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n310039_0))) → *4_0, rt ∈ Ω(n3100390)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(185) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)
U52(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n304092_0))) → *4_0, rt ∈ Ω(n3040920)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(186) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)
U46(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n298246_0))) → *4_0, rt ∈ Ω(n2982460)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(187) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)
U45(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n285063_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2850630)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(188) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)
U44(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n264894_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2648940)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(189) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)
U43(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n245330_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2453300)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(190) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)
U42(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n226371_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n2263710)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(191) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)
U33(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n221373_0))) → *4_0, rt ∈ Ω(n2213730)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(192) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)
U32(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n209906_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n2099060)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(193) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)
U23(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n205159_0))) → *4_0, rt ∈ Ω(n2051590)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(194) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)
U22(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n194202_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1942020)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(195) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)
take(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n183350_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n1833500)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(196) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)
U136(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n160873_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1608730)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(197) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)
U135(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n139400_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1394000)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(198) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)
U134(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n118931_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n1189310)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(199) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)
U133(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n99466_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n994660)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(200) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)
U132(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n81005_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c), gen_zeros:0':mark:tt:nil:ok3_0(d)) → *4_0, rt ∈ Ω(n810050)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(201) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)
U122(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n77899_0))) → *4_0, rt ∈ Ω(n778990)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(202) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)
U13(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n74823_0))) → *4_0, rt ∈ Ω(n748230)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(203) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)
length(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n71919_0))) → *4_0, rt ∈ Ω(n719190)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(204) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)
s(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n69116_0))) → *4_0, rt ∈ Ω(n691160)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(205) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)
U114(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n62091_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n620910)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(206) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)
U113(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n51195_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n511950)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(207) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)
U112(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n40904_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n409040)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(208) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)
U12(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n34987_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n349870)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(209) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)
U106(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n32945_0))) → *4_0, rt ∈ Ω(n329450)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(210) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)
U105(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n27503_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n275030)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(211) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)
U104(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n19044_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n190440)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(212) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)
U103(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n11167_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n111670)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(213) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)
U102(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n3902_0)), gen_zeros:0':mark:tt:nil:ok3_0(b), gen_zeros:0':mark:tt:nil:ok3_0(c)) → *4_0, rt ∈ Ω(n39020)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.

(214) Obligation:

TRS:
Rules:
active(zeros) → mark(cons(0', zeros))
active(U101(tt, V1, V2)) → mark(U102(isNatKind(V1), V1, V2))
active(U102(tt, V1, V2)) → mark(U103(isNatIListKind(V2), V1, V2))
active(U103(tt, V1, V2)) → mark(U104(isNatIListKind(V2), V1, V2))
active(U104(tt, V1, V2)) → mark(U105(isNat(V1), V2))
active(U105(tt, V2)) → mark(U106(isNatIList(V2)))
active(U106(tt)) → mark(tt)
active(U11(tt, V1)) → mark(U12(isNatIListKind(V1), V1))
active(U111(tt, L, N)) → mark(U112(isNatIListKind(L), L, N))
active(U112(tt, L, N)) → mark(U113(isNat(N), L, N))
active(U113(tt, L, N)) → mark(U114(isNatKind(N), L))
active(U114(tt, L)) → mark(s(length(L)))
active(U12(tt, V1)) → mark(U13(isNatList(V1)))
active(U121(tt, IL)) → mark(U122(isNatIListKind(IL)))
active(U122(tt)) → mark(nil)
active(U13(tt)) → mark(tt)
active(U131(tt, IL, M, N)) → mark(U132(isNatIListKind(IL), IL, M, N))
active(U132(tt, IL, M, N)) → mark(U133(isNat(M), IL, M, N))
active(U133(tt, IL, M, N)) → mark(U134(isNatKind(M), IL, M, N))
active(U134(tt, IL, M, N)) → mark(U135(isNat(N), IL, M, N))
active(U135(tt, IL, M, N)) → mark(U136(isNatKind(N), IL, M, N))
active(U136(tt, IL, M, N)) → mark(cons(N, take(M, IL)))
active(U21(tt, V1)) → mark(U22(isNatKind(V1), V1))
active(U22(tt, V1)) → mark(U23(isNat(V1)))
active(U23(tt)) → mark(tt)
active(U31(tt, V)) → mark(U32(isNatIListKind(V), V))
active(U32(tt, V)) → mark(U33(isNatList(V)))
active(U33(tt)) → mark(tt)
active(U41(tt, V1, V2)) → mark(U42(isNatKind(V1), V1, V2))
active(U42(tt, V1, V2)) → mark(U43(isNatIListKind(V2), V1, V2))
active(U43(tt, V1, V2)) → mark(U44(isNatIListKind(V2), V1, V2))
active(U44(tt, V1, V2)) → mark(U45(isNat(V1), V2))
active(U45(tt, V2)) → mark(U46(isNatIList(V2)))
active(U46(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isNatIListKind(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt, V2)) → mark(U62(isNatIListKind(V2)))
active(U62(tt)) → mark(tt)
active(U71(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(U91(tt, V1, V2)) → mark(U92(isNatKind(V1), V1, V2))
active(U92(tt, V1, V2)) → mark(U93(isNatIListKind(V2), V1, V2))
active(U93(tt, V1, V2)) → mark(U94(isNatIListKind(V2), V1, V2))
active(U94(tt, V1, V2)) → mark(U95(isNat(V1), V2))
active(U95(tt, V2)) → mark(U96(isNatList(V2)))
active(U96(tt)) → mark(tt)
active(isNat(0')) → mark(tt)
active(isNat(length(V1))) → mark(U11(isNatIListKind(V1), V1))
active(isNat(s(V1))) → mark(U21(isNatKind(V1), V1))
active(isNatIList(V)) → mark(U31(isNatIListKind(V), V))
active(isNatIList(zeros)) → mark(tt)
active(isNatIList(cons(V1, V2))) → mark(U41(isNatKind(V1), V1, V2))
active(isNatIListKind(nil)) → mark(tt)
active(isNatIListKind(zeros)) → mark(tt)
active(isNatIListKind(cons(V1, V2))) → mark(U51(isNatKind(V1), V2))
active(isNatIListKind(take(V1, V2))) → mark(U61(isNatKind(V1), V2))
active(isNatKind(0')) → mark(tt)
active(isNatKind(length(V1))) → mark(U71(isNatIListKind(V1)))
active(isNatKind(s(V1))) → mark(U81(isNatKind(V1)))
active(isNatList(nil)) → mark(tt)
active(isNatList(cons(V1, V2))) → mark(U91(isNatKind(V1), V1, V2))
active(isNatList(take(V1, V2))) → mark(U101(isNatKind(V1), V1, V2))
active(length(nil)) → mark(0')
active(length(cons(N, L))) → mark(U111(isNatList(L), L, N))
active(take(0', IL)) → mark(U121(isNatIList(IL), IL))
active(take(s(M), cons(N, IL))) → mark(U131(isNatIList(IL), IL, M, N))
active(cons(X1, X2)) → cons(active(X1), X2)
active(U101(X1, X2, X3)) → U101(active(X1), X2, X3)
active(U102(X1, X2, X3)) → U102(active(X1), X2, X3)
active(U103(X1, X2, X3)) → U103(active(X1), X2, X3)
active(U104(X1, X2, X3)) → U104(active(X1), X2, X3)
active(U105(X1, X2)) → U105(active(X1), X2)
active(U106(X)) → U106(active(X))
active(U11(X1, X2)) → U11(active(X1), X2)
active(U12(X1, X2)) → U12(active(X1), X2)
active(U111(X1, X2, X3)) → U111(active(X1), X2, X3)
active(U112(X1, X2, X3)) → U112(active(X1), X2, X3)
active(U113(X1, X2, X3)) → U113(active(X1), X2, X3)
active(U114(X1, X2)) → U114(active(X1), X2)
active(s(X)) → s(active(X))
active(length(X)) → length(active(X))
active(U13(X)) → U13(active(X))
active(U121(X1, X2)) → U121(active(X1), X2)
active(U122(X)) → U122(active(X))
active(U131(X1, X2, X3, X4)) → U131(active(X1), X2, X3, X4)
active(U132(X1, X2, X3, X4)) → U132(active(X1), X2, X3, X4)
active(U133(X1, X2, X3, X4)) → U133(active(X1), X2, X3, X4)
active(U134(X1, X2, X3, X4)) → U134(active(X1), X2, X3, X4)
active(U135(X1, X2, X3, X4)) → U135(active(X1), X2, X3, X4)
active(U136(X1, X2, X3, X4)) → U136(active(X1), X2, X3, X4)
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
active(U21(X1, X2)) → U21(active(X1), X2)
active(U22(X1, X2)) → U22(active(X1), X2)
active(U23(X)) → U23(active(X))
active(U31(X1, X2)) → U31(active(X1), X2)
active(U32(X1, X2)) → U32(active(X1), X2)
active(U33(X)) → U33(active(X))
active(U41(X1, X2, X3)) → U41(active(X1), X2, X3)
active(U42(X1, X2, X3)) → U42(active(X1), X2, X3)
active(U43(X1, X2, X3)) → U43(active(X1), X2, X3)
active(U44(X1, X2, X3)) → U44(active(X1), X2, X3)
active(U45(X1, X2)) → U45(active(X1), X2)
active(U46(X)) → U46(active(X))
active(U51(X1, X2)) → U51(active(X1), X2)
active(U52(X)) → U52(active(X))
active(U61(X1, X2)) → U61(active(X1), X2)
active(U62(X)) → U62(active(X))
active(U71(X)) → U71(active(X))
active(U81(X)) → U81(active(X))
active(U91(X1, X2, X3)) → U91(active(X1), X2, X3)
active(U92(X1, X2, X3)) → U92(active(X1), X2, X3)
active(U93(X1, X2, X3)) → U93(active(X1), X2, X3)
active(U94(X1, X2, X3)) → U94(active(X1), X2, X3)
active(U95(X1, X2)) → U95(active(X1), X2)
active(U96(X)) → U96(active(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
U101(mark(X1), X2, X3) → mark(U101(X1, X2, X3))
U102(mark(X1), X2, X3) → mark(U102(X1, X2, X3))
U103(mark(X1), X2, X3) → mark(U103(X1, X2, X3))
U104(mark(X1), X2, X3) → mark(U104(X1, X2, X3))
U105(mark(X1), X2) → mark(U105(X1, X2))
U106(mark(X)) → mark(U106(X))
U11(mark(X1), X2) → mark(U11(X1, X2))
U12(mark(X1), X2) → mark(U12(X1, X2))
U111(mark(X1), X2, X3) → mark(U111(X1, X2, X3))
U112(mark(X1), X2, X3) → mark(U112(X1, X2, X3))
U113(mark(X1), X2, X3) → mark(U113(X1, X2, X3))
U114(mark(X1), X2) → mark(U114(X1, X2))
s(mark(X)) → mark(s(X))
length(mark(X)) → mark(length(X))
U13(mark(X)) → mark(U13(X))
U121(mark(X1), X2) → mark(U121(X1, X2))
U122(mark(X)) → mark(U122(X))
U131(mark(X1), X2, X3, X4) → mark(U131(X1, X2, X3, X4))
U132(mark(X1), X2, X3, X4) → mark(U132(X1, X2, X3, X4))
U133(mark(X1), X2, X3, X4) → mark(U133(X1, X2, X3, X4))
U134(mark(X1), X2, X3, X4) → mark(U134(X1, X2, X3, X4))
U135(mark(X1), X2, X3, X4) → mark(U135(X1, X2, X3, X4))
U136(mark(X1), X2, X3, X4) → mark(U136(X1, X2, X3, X4))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
U21(mark(X1), X2) → mark(U21(X1, X2))
U22(mark(X1), X2) → mark(U22(X1, X2))
U23(mark(X)) → mark(U23(X))
U31(mark(X1), X2) → mark(U31(X1, X2))
U32(mark(X1), X2) → mark(U32(X1, X2))
U33(mark(X)) → mark(U33(X))
U41(mark(X1), X2, X3) → mark(U41(X1, X2, X3))
U42(mark(X1), X2, X3) → mark(U42(X1, X2, X3))
U43(mark(X1), X2, X3) → mark(U43(X1, X2, X3))
U44(mark(X1), X2, X3) → mark(U44(X1, X2, X3))
U45(mark(X1), X2) → mark(U45(X1, X2))
U46(mark(X)) → mark(U46(X))
U51(mark(X1), X2) → mark(U51(X1, X2))
U52(mark(X)) → mark(U52(X))
U61(mark(X1), X2) → mark(U61(X1, X2))
U62(mark(X)) → mark(U62(X))
U71(mark(X)) → mark(U71(X))
U81(mark(X)) → mark(U81(X))
U91(mark(X1), X2, X3) → mark(U91(X1, X2, X3))
U92(mark(X1), X2, X3) → mark(U92(X1, X2, X3))
U93(mark(X1), X2, X3) → mark(U93(X1, X2, X3))
U94(mark(X1), X2, X3) → mark(U94(X1, X2, X3))
U95(mark(X1), X2) → mark(U95(X1, X2))
U96(mark(X)) → mark(U96(X))
proper(zeros) → ok(zeros)
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(0') → ok(0')
proper(U101(X1, X2, X3)) → U101(proper(X1), proper(X2), proper(X3))
proper(tt) → ok(tt)
proper(U102(X1, X2, X3)) → U102(proper(X1), proper(X2), proper(X3))
proper(isNatKind(X)) → isNatKind(proper(X))
proper(U103(X1, X2, X3)) → U103(proper(X1), proper(X2), proper(X3))
proper(isNatIListKind(X)) → isNatIListKind(proper(X))
proper(U104(X1, X2, X3)) → U104(proper(X1), proper(X2), proper(X3))
proper(U105(X1, X2)) → U105(proper(X1), proper(X2))
proper(isNat(X)) → isNat(proper(X))
proper(U106(X)) → U106(proper(X))
proper(isNatIList(X)) → isNatIList(proper(X))
proper(U11(X1, X2)) → U11(proper(X1), proper(X2))
proper(U12(X1, X2)) → U12(proper(X1), proper(X2))
proper(U111(X1, X2, X3)) → U111(proper(X1), proper(X2), proper(X3))
proper(U112(X1, X2, X3)) → U112(proper(X1), proper(X2), proper(X3))
proper(U113(X1, X2, X3)) → U113(proper(X1), proper(X2), proper(X3))
proper(U114(X1, X2)) → U114(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(length(X)) → length(proper(X))
proper(U13(X)) → U13(proper(X))
proper(isNatList(X)) → isNatList(proper(X))
proper(U121(X1, X2)) → U121(proper(X1), proper(X2))
proper(U122(X)) → U122(proper(X))
proper(nil) → ok(nil)
proper(U131(X1, X2, X3, X4)) → U131(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U132(X1, X2, X3, X4)) → U132(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U133(X1, X2, X3, X4)) → U133(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U134(X1, X2, X3, X4)) → U134(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U135(X1, X2, X3, X4)) → U135(proper(X1), proper(X2), proper(X3), proper(X4))
proper(U136(X1, X2, X3, X4)) → U136(proper(X1), proper(X2), proper(X3), proper(X4))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
proper(U21(X1, X2)) → U21(proper(X1), proper(X2))
proper(U22(X1, X2)) → U22(proper(X1), proper(X2))
proper(U23(X)) → U23(proper(X))
proper(U31(X1, X2)) → U31(proper(X1), proper(X2))
proper(U32(X1, X2)) → U32(proper(X1), proper(X2))
proper(U33(X)) → U33(proper(X))
proper(U41(X1, X2, X3)) → U41(proper(X1), proper(X2), proper(X3))
proper(U42(X1, X2, X3)) → U42(proper(X1), proper(X2), proper(X3))
proper(U43(X1, X2, X3)) → U43(proper(X1), proper(X2), proper(X3))
proper(U44(X1, X2, X3)) → U44(proper(X1), proper(X2), proper(X3))
proper(U45(X1, X2)) → U45(proper(X1), proper(X2))
proper(U46(X)) → U46(proper(X))
proper(U51(X1, X2)) → U51(proper(X1), proper(X2))
proper(U52(X)) → U52(proper(X))
proper(U61(X1, X2)) → U61(proper(X1), proper(X2))
proper(U62(X)) → U62(proper(X))
proper(U71(X)) → U71(proper(X))
proper(U81(X)) → U81(proper(X))
proper(U91(X1, X2, X3)) → U91(proper(X1), proper(X2), proper(X3))
proper(U92(X1, X2, X3)) → U92(proper(X1), proper(X2), proper(X3))
proper(U93(X1, X2, X3)) → U93(proper(X1), proper(X2), proper(X3))
proper(U94(X1, X2, X3)) → U94(proper(X1), proper(X2), proper(X3))
proper(U95(X1, X2)) → U95(proper(X1), proper(X2))
proper(U96(X)) → U96(proper(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
U101(ok(X1), ok(X2), ok(X3)) → ok(U101(X1, X2, X3))
U102(ok(X1), ok(X2), ok(X3)) → ok(U102(X1, X2, X3))
isNatKind(ok(X)) → ok(isNatKind(X))
U103(ok(X1), ok(X2), ok(X3)) → ok(U103(X1, X2, X3))
isNatIListKind(ok(X)) → ok(isNatIListKind(X))
U104(ok(X1), ok(X2), ok(X3)) → ok(U104(X1, X2, X3))
U105(ok(X1), ok(X2)) → ok(U105(X1, X2))
isNat(ok(X)) → ok(isNat(X))
U106(ok(X)) → ok(U106(X))
isNatIList(ok(X)) → ok(isNatIList(X))
U11(ok(X1), ok(X2)) → ok(U11(X1, X2))
U12(ok(X1), ok(X2)) → ok(U12(X1, X2))
U111(ok(X1), ok(X2), ok(X3)) → ok(U111(X1, X2, X3))
U112(ok(X1), ok(X2), ok(X3)) → ok(U112(X1, X2, X3))
U113(ok(X1), ok(X2), ok(X3)) → ok(U113(X1, X2, X3))
U114(ok(X1), ok(X2)) → ok(U114(X1, X2))
s(ok(X)) → ok(s(X))
length(ok(X)) → ok(length(X))
U13(ok(X)) → ok(U13(X))
isNatList(ok(X)) → ok(isNatList(X))
U121(ok(X1), ok(X2)) → ok(U121(X1, X2))
U122(ok(X)) → ok(U122(X))
U131(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U131(X1, X2, X3, X4))
U132(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U132(X1, X2, X3, X4))
U133(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U133(X1, X2, X3, X4))
U134(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U134(X1, X2, X3, X4))
U135(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U135(X1, X2, X3, X4))
U136(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(U136(X1, X2, X3, X4))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
U21(ok(X1), ok(X2)) → ok(U21(X1, X2))
U22(ok(X1), ok(X2)) → ok(U22(X1, X2))
U23(ok(X)) → ok(U23(X))
U31(ok(X1), ok(X2)) → ok(U31(X1, X2))
U32(ok(X1), ok(X2)) → ok(U32(X1, X2))
U33(ok(X)) → ok(U33(X))
U41(ok(X1), ok(X2), ok(X3)) → ok(U41(X1, X2, X3))
U42(ok(X1), ok(X2), ok(X3)) → ok(U42(X1, X2, X3))
U43(ok(X1), ok(X2), ok(X3)) → ok(U43(X1, X2, X3))
U44(ok(X1), ok(X2), ok(X3)) → ok(U44(X1, X2, X3))
U45(ok(X1), ok(X2)) → ok(U45(X1, X2))
U46(ok(X)) → ok(U46(X))
U51(ok(X1), ok(X2)) → ok(U51(X1, X2))
U52(ok(X)) → ok(U52(X))
U61(ok(X1), ok(X2)) → ok(U61(X1, X2))
U62(ok(X)) → ok(U62(X))
U71(ok(X)) → ok(U71(X))
U81(ok(X)) → ok(U81(X))
U91(ok(X1), ok(X2), ok(X3)) → ok(U91(X1, X2, X3))
U92(ok(X1), ok(X2), ok(X3)) → ok(U92(X1, X2, X3))
U93(ok(X1), ok(X2), ok(X3)) → ok(U93(X1, X2, X3))
U94(ok(X1), ok(X2), ok(X3)) → ok(U94(X1, X2, X3))
U95(ok(X1), ok(X2)) → ok(U95(X1, X2))
U96(ok(X)) → ok(U96(X))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))

Types:
active :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
zeros :: zeros:0':mark:tt:nil:ok
mark :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
cons :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
0' :: zeros:0':mark:tt:nil:ok
U101 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
tt :: zeros:0':mark:tt:nil:ok
U102 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U103 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIListKind :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U104 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U105 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNat :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U106 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatIList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U11 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U12 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U111 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U112 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U113 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U114 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
s :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
length :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U13 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
isNatList :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U121 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U122 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
nil :: zeros:0':mark:tt:nil:ok
U131 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U132 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U133 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U134 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U135 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U136 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
take :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U21 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U22 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U23 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U31 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U32 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U33 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U41 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U42 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U43 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U44 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U45 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U46 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U51 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U52 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U61 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U62 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U71 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U81 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U91 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U92 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U93 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U94 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U95 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
U96 :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
proper :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
ok :: zeros:0':mark:tt:nil:ok → zeros:0':mark:tt:nil:ok
top :: zeros:0':mark:tt:nil:ok → top
hole_zeros:0':mark:tt:nil:ok1_0 :: zeros:0':mark:tt:nil:ok
hole_top2_0 :: top
gen_zeros:0':mark:tt:nil:ok3_0 :: Nat → zeros:0':mark:tt:nil:ok

Lemmas:
cons(gen_zeros:0':mark:tt:nil:ok3_0(+(1, n5_0)), gen_zeros:0':mark:tt:nil:ok3_0(b)) → *4_0, rt ∈ Ω(n50)

Generator Equations:
gen_zeros:0':mark:tt:nil:ok3_0(0) ⇔ zeros
gen_zeros:0':mark:tt:nil:ok3_0(+(x, 1)) ⇔ mark(gen_zeros:0':mark:tt:nil:ok3_0(x))

No more defined symbols left to analyse.